package com.zby.big_event_zby.utils;

import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;

import java.util.Date;
import java.util.Map;

/**
 * @version 1.0
 * @auther ZBY
 */
public class JwtUtils {
    // 定义一个静态常量SIGN_KEY，用于签名算法中的密钥
    // 该密钥用于保证数据的完整性和安全性
    private static final String SIGN_KEY = "zby";
    //接收业务数据，生成token并返回
    public static String getToken(Map<String, Object> map){
   return JWT.create().withClaim("map",map)//添加负载
           .withExpiresAt(new Date(System.currentTimeMillis()+60*1000*60*24*7))//设置过期时间
           .sign(Algorithm.HMAC256(SIGN_KEY));//指定算法

    }
    public static Map<String, Object> pareseToken(String token){
//        使用JWT.require方法创建一个JWT验证器。
//        使用Algorithm.HMAC256(SIGN_KEY)设置签名算法为HMAC256，并使用SIGN_KEY作为签名密钥。
//        调用.build()方法构建验证器。
//        调用.verify(token)方法验证JWT token的有效性。
//        调用.getClaim("map")方法获取名为"map"的claim（载荷部分）。
//        调用.asMap()方法将该claim解析为Map对象并返回。
        return JWT.require(Algorithm.HMAC256(SIGN_KEY))
                .build()
                .verify(token)
                .getClaim("map")
                .asMap();
    }




}
